01-아키텍처이해및준비

Web/WAS 분리 아키텍처 이해 및 준비

Web 서버(Apache)와 WAS 서버(Tomcat)를 분리하는 3-Tier 아키텍처의 개념을 이해하고 준비 작업을 진행합니다.

Web/WAS 분리 아키텍처란?

기본 실습 vs 심화 실습 비교

기본 실습 (2-Tier):

사용자 → EC2 (Node.js) → RDS
        웹+앱 서버

심화 실습 (3-Tier):

사용자 → EC2 (Apache) → EC2 (Tomcat) → RDS
        웹 서버      WAS 서버

Web/WAS 분리의 장점

1. 역할 분담:

2. 성능 향상:

3. 확장성:

실습 아키텍처

네트워크 구조

인터넷
   ↓
Internet Gateway
   ↓
VPC (webapp-vpc)
   ├─ Public Subnet - Web 서버 영역
   │   └─ EC2 (Apache) - 포트 80
   │
   └─ Private Subnet - WAS 서버 영역  
       └─ EC2 (Tomcat) - 포트 8080

요청 처리 흐름

1. 사용자가 웹 페이지 요청
2. Apache에서 요청 받음
3. 정적 파일(.html, .css) → Apache에서 직접 처리
4. 동적 파일(.jsp) → Tomcat으로 전달
5. Tomcat에서 처리 후 결과를 Apache로 반환
6. Apache가 최종 결과를 사용자에게 전송

1. WAS 서버용 EC2 인스턴스 생성

Private 서브넷에 Tomcat이 설치될 EC2를 생성합니다.

EC2 인스턴스 시작

  1. EC2 콘솔인스턴스 시작 클릭

인스턴스 기본 설정

Name: webapp-was-server

Application and OS Images: Amazon Linux 2023 AMI

Instance type: t2.micro

Key pair: webapp-keypair (기존 키페어 사용)

네트워크 설정

VPC: webapp-vpc

Subnet: webapp-private-subnet-app 또는 webapp-private-subnet-db (Private 서브넷)

Auto-assign public IP: Disable (Private 서브넷이므로)

Security Group: 새로 생성

WAS 보안 그룹 인바운드 규칙

규칙 1: SSH 접근

규칙 2: Tomcat 접근

규칙 3: AJP 연동

인스턴스 시작

"인스턴스 시작" 클릭

2. 기존 Web 서버 보안 그룹 수정

기존 Web 서버가 WAS 서버로 접근할 수 있도록 아웃바운드 규칙을 확인합니다.

Web 서버 보안 그룹 확인

  1. EC2 콘솔보안 그룹webapp-web-sg 선택
  2. 아웃바운드 규칙 탭 확인
  3. 기본적으로 모든 아웃바운드가 허용되어 있으면 추가 설정 불필요

3. WAS 서버 접속 테스트

Private 서브넷의 WAS 서버는 Web 서버를 통해서만 접속 가능합니다.

Web 서버를 통한 점프 접속

# 1단계: Web 서버(Public)에 접속
ssh -i webapp-keypair.pem ec2-user@[Web서버-Public-IP]

# 2단계: Web 서버에서 WAS 서버(Private)로 접속
ssh ec2-user@[WAS서버-Private-IP]

# 예시: ssh ec2-user@10.0.2.10

WAS 서버 Private IP 확인 방법

  1. EC2 콘솔에서 webapp-was-server 인스턴스 클릭
  2. 세부 정보 탭에서 프라이빗 IPv4 주소 확인
  3. 예: 10.0.2.45

4. 네트워크 연결 테스트

Web 서버에서 WAS 서버로 연결 테스트

# Web 서버에서 실행 - WAS 서버와의 네트워크 연결 확인
ping [WAS서버-Private-IP]

# 예시: ping 10.0.2.45

# Ctrl+C로 중지

포트 연결 테스트

# Web 서버에서 WAS 서버의 8080 포트 연결 테스트
telnet [WAS서버-Private-IP] 8080

# 아직 Tomcat이 설치되지 않았으므로 연결 실패가 정상
# "Connection refused" 메시지가 나오면 정상

# telnet 종료: Ctrl+] 후 quit

완료 체크리스트

중요 정보 정리

다음 단계에서 사용할 정보를 기록해두세요:

WAS 서버 정보:


아키텍처 준비 완료! Web/WAS 분리를 위한 네트워크 구조와 서버 준비가 완료되었습니다.

다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3-WAS-Deployment/WebWAS분리/02-WAS서버구성으로 이동하여 Tomcat과 간단한 JSP 애플리케이션을 설치합니다.


관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week2-Dynamic-WebApp-Deployment/Week2-전체가이드